package com.behelpful.common.core.jackson;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;

/**
 * 这样也可以将自定义的系列化处理器注册到 Jackson 中; 与 JacksonConfig 的方式二选一即可
 *
 * @author Alay
 * @date 2021-08-17 11:09
 * @project be-helpful
 * @since
 */
@Deprecated
public class IEnumConfig implements ApplicationListener<ContextRefreshedEvent> {
    /**
     * 启动项目的时候会触发多次,所以 加一个变量,控制让注册只进行一次
     */
    private boolean isExecute = true;

    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        /**
         * 启动项目的时候会触发多次,所以 加一个变量,控制让注册只进行一次
         */
        if (isExecute) {
            ApplicationContext applicationContext = event.getApplicationContext();
            //注册转换器
            ObjectMapper bean = applicationContext.getBean(ObjectMapper.class);
            bean.registerModule(new IEnumModule());
        }
        isExecute = false;
    }
}
